package one;
import java.util.*;

public class A010 {

    public static void main(String[] args) {
        int[] a = {1,-1,0,1};
        subarraySum(a,0);
    }

    public static int subarraySum(int[] nums, int k) {
        Map<Integer,Integer> map = new HashMap<>();
        map.put(0,1);
        int ret=0,sum=0;
        for(int i=0;i<nums.length;i++) {
            sum += nums[i]; //固定求前缀和
            if(map.containsKey(sum-k)) { //存在这样的前缀和就记录结果
                ret += map.get(sum-k);
            }
            //记录前缀和
            map.put(sum,map.getOrDefault(sum,0)+1);
        }
        return ret;
    }
}
